<?php

namespace app\admin\controller;

use think\Controller;
use think\facade\Validate;

class Login extends Controller
{
    // 注册
    public function register()
    {
        return view();
    }

    // 处理注册数据
    public function registerDo()
    {
        $data = [
            'username' => input('username'),
            'password' => input('password')
        ];
        $rules = [
            'username' => 'require',
            'password' => 'require'
        ];
        $validate = Validate::make($rules);
        if ($validate->check($data)) {
            $result = \think\Db::name('user')->insert($data);
            if ($result) {
                return '注册成功';
            } else {
                return '注册失败';
            }
        } else {
            $this->error($validate->getError());
        }

    }

    // 登录方法
    public function login()
    {
        return view();
    }

    // 处理登录数据
    public function loginDo()
    {
        $data = [
            'username' => input('username'),
            'password' => input('password')
        ];
        $result = \think\Db::name('user')->where($data)->find();
        if ($result) {
            // 使用session保存用户登录状态
            session('id', $result['id']);
            $this->success('登录成功', 'admin/login/userinfo');
        } else {
            $this->error('用户名或者密码错误', 'admin/login/login');
        }
    }

    // 后台首页
    public function index()
    {
        if (session('?id')) {
            $data = [
                'id' => session('id')
            ];
            $userInfo = \think\Db::name('user')->where($data)->find();
            // 变量赋值
            $this->assign('userInfo', $userInfo);
            return view();
        } else {
            $this->error('尚未登录，请先登录', 'admin/login/login');
        }

    }

    // 查询用户信息
    public function userinfo()
    {
        // 判断登录状态
        if (session('?id')) {
            $data = [
                'id' => session('id')
            ];
            $userInfo = \think\Db::name('user')->where($data)->find();
            $this->assign('userInfo', $userInfo);
            return view();

        } else {
            $this->error('尚未登录，请先登录', 'admin/login/login');
        }
    }

    // 修改用户的邮箱
    public function edit_user_info()
    {
        return view();
    }

    // 处理修改数据
    public function edit_user_info_do()
    {
        if (session('?id')) {
             $data = [
                'email' => input('email')
            ];
            $where = [
                'id' => session('id')
            ];
            $result = \think\Db::name('user')->where($where)->update($data);
            if ($result) {
                $this->success('修改成功', 'admin/login/userinfo');
            } else {
                $this->error('修改失败', 'admin/login/userinfo');
            }
        } else {
            $this->error('尚未登录，请先登录', 'admin/login/login');
        }
    }
}
